﻿using System.ComponentModel;

namespace TCommunication.Model.Enum;
/// <summary>
/// Can帧发送方式
/// </summary>
public enum CanTransmitType
{
    /// <summary>
    /// 正常发送:在ID仲裁丢失或发送出现错误时，CAN控制器会自动重发，直到发送
    /// 成功，或发送超时，或总线关闭
    /// </summary>
    [Description("正常发送")]
    NormalSend,          // 正常发送
    /// <summary>
    /// 单次发送：在一些应用中，允许部分数据丢失，但不能出现传输延迟时，自动重发
    /// 就没有意义了。在这些应用中，一般会以固定的时间间隔发送数据，自动重发会导
    /// 致后面的数据无法发送，出现传输延迟。使用单次发送，仲裁丢失或发送错误，
    /// CAN控制器不会重发报文。
    /// </summary>
    [Description("单次发送")]
    SingleSend,          // 单次发送
    /// <summary>
    /// 自发自收：产生一次带自接收特性的正常发送，在发送完成后，可以从接收缓冲区
    /// 中读到已发送的报文。
    /// </summary>
    [Description("自发自收")]
    SelfTransmit,        // 自发自收
    /// <summary>
    /// 单次自发自收：产生一次带自接收特性的单次发送，在发送出错或仲裁丢失不会执
    /// 行重发。在发送完成后，可以从接收缓冲区中读到已发送的报文。 
    /// </summary>
    [Description("单次自发自收")]
    SingleSelfTransmit   // 单次自发自收
}